package com.gewu.pm.widget;

import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.annotation.Nullable;

import com.gewu.pm.R;

/**
 * 底部按钮控件
 * 统一的底部按钮样式，所有页面底部单个按钮都使用此控件
 */
public class BottomButton extends LinearLayout {

    private TextView mButtonView;

    public BottomButton(Context context) {
        this(context, null);
    }

    public BottomButton(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public BottomButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context, attrs);
    }

    private void init(Context context, AttributeSet attrs) {
        // 加载布局
        LayoutInflater.from(context).inflate(R.layout.layout_bottom_button, this, true);

        // 获取控件
        mButtonView = findViewById(R.id.tv_bottom_button);

        // 读取自定义属性
        if (attrs != null) {
            TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.BottomButton);
            
            // 设置按钮文字
            String buttonText = ta.getString(R.styleable.BottomButton_buttonText);
            if (buttonText != null) {
                mButtonView.setText(buttonText);
            }
            
            ta.recycle();
        }
    }

    /**
     * 获取按钮控件
     */
    public TextView getButtonView() {
        return mButtonView;
    }

    /**
     * 设置按钮文字
     */
    public void setText(String text) {
        if (mButtonView != null) {
            mButtonView.setText(text);
        }
    }

    /**
     * 设置按钮文字资源
     */
    public void setText(int resId) {
        if (mButtonView != null) {
            mButtonView.setText(resId);
        }
    }

    /**
     * 重写 setOnClickListener，自动传递给内部按钮
     */
    @Override
    public void setOnClickListener(@Nullable OnClickListener l) {
        if (mButtonView != null) {
            mButtonView.setOnClickListener(l);
        } else {
            super.setOnClickListener(l);
        }
    }
}
